package ar.com.vates.ejercicio1;

public class Triangulo {

	private Punto p,q,r;

	public Punto getP() {
		return p;
	}

	public void setP(Punto p) {
		this.p = p;
	}

	public Punto getQ() {
		return q;
	}

	public void setQ(Punto q) {
		this.q = q;
	}

	public Punto getR() {
		return r;
	}

	public void setR(Punto r) {
		this.r = r;
	}
	
	//constructor donde se crean aleatoriamente los puntos del triangulo
	// al ser un triangulo rectangulo algunas coordenadas deben ser iguales
	public Triangulo(){
		int px,py,qx,qy,rx,ry;
		do{
		 px = (int)(10.0 * Math.random()) + 1;
		 py = (int)(10.0 * Math.random()) + 1;
		
		 qx = (int)(10.0 * Math.random()) + 1;
		 qy = py;
		
		 rx = px;
		 ry = (int)(10.0 * Math.random()) + 1;
		}
		while(px >= qx || py >= ry);
			
		p = new Punto(px,py);
		q = new Punto(qx,qy);
		r = new Punto(rx,ry);
		}
	
	
	
	public Triangulo(Punto _p,Punto _q,Punto _r){
		p = _p;
		q = _q;
		r = _r;
	}
	
	public Triangulo (int x1,int y1,int x2,int y2,int x3,int y3){
		p = new Punto(x1, y1);
		q = new Punto(x2, y2);
		r = new Punto(x3, y3);
	}
	
//	public double calcularDistanciaDesde(Punto p){
//		double distancia = 0.0;
//		
//		return distancia;
//	}
	
	public double calcularPerimetro(){
		double perimetro = 0.0;
		//Math.abs calcula el valor absoluto, ya que la distancia no puede ser negativa
		int distancia1 = Math.abs(p.getX() - q.getX());
		int distancia2 = Math.abs(p.getY() - r.getY());
		double distancaHipotenusa = Math.sqrt(Math.pow(distancia1, 2) + Math.pow(distancia2, 2));
		
		perimetro = distancia1 + distancia2 + distancaHipotenusa;
		
		return perimetro;
	}
	
	public double calcularArea(){
		double area = 0.0;
		double base = Math.abs(p.getX() - q.getX());
		double altura = Math.abs(p.getY() - r.getY());
		
		area = (base * altura)/2;
		
		return area;
	}
	
}
